﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

#include <stdio.h>
void test()
{
	printf("hehe\n");
}
int main()
{
	printf("%p\n", test);
	printf("%p\n", &test);
	return 0;
}

//void print_arr1(int arr[3][5], int row, int col)
//{
//    int i = 0;
//    for (i = 0; i < row; i++)
//    {
//        int j = 0;
//        for (j = 0; j < col; j++)
//        {
//            printf("%d ", arr[i][j]);
//        }
//        printf("\n");
//    }
//}
//
//void print_arr2(int(*arr)[5], int row, int col)
//{
//    int i = 0;
//    for (i = 0; i < row; i++)
//    {
//        int j = 0;
//        for (j = 0; j < col; j++)
//        {
//            printf("%d ", arr[i][j]);
//        }
//        printf("\n");
//    }
//}
//
//int main()
//{
//    int arr[3][5] = { 1,2,3,4,5,6,7,8,9,10 };
//    //print_arr1(arr, 3, 5);
//    //数组名arr，表示首元素的地址，但是二维数组的首元素是二维数组的第一行
//    //所以这里传递的arr，其实相当于第一行的地址，是一维数组的地址，因此在函数中的参数用数组指针来接收
//    print_arr2(arr, 3, 5);
//    return 0;
//}

//int main()
//{
//    int arr[10] = { 0 };
//    printf("arr = %p\n", arr);
//    printf("&arr= %p\n", &arr);
//    printf("arr+1 = %p\n", arr + 1);
//    printf("&arr+1= %p\n", &arr + 1);
//    return 0;
//}

//int main()
//{
//    int arr[10] = { 0 };
//    printf("%p\n", arr);
//    printf("%p\n", &arr);
//    return 0;
//}

//int main()
//{
//    char str1[] = "hello bit.";
//    char str2[] = "hello bit.";
//    const char* str3 = "hello bit.";
//    const char* str4 = "hello bit.";
//    if (str1 == str2)
//    {
//        printf("str1 and str2 are same\n");
//    }
//    else
//    {
//        printf("str1 and str2 are not same\n");
//    }
//
//    if (str1 == str2)
//    {
//        printf("str3 and str4 are same\n");
//    }
//    else
//    {
//        printf("str3 and str4 are not same\n");
//    }
//    return 0;
//}

//int main()
//{
//	const char* pstr = "hello world.";
//	printf("%s\n", pstr);
//	return 0;
//}

//int main()
//{
//	int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
//	int* p = arr; //指针存放数组首元素的地址
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		printf("%d ", *(p + i));
//	}
//	return 0;
//}

//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,0 };
//	printf("%p\n", arr);
//	printf("%p\n", &arr[0]);
//	return 0;
//}

//size_t my_strlen(char* s)
//{
//    char* p = s;
//    while (*p != '\0')
//        p++;
//    return s - p;
//}
//
//int main()
//{
//    char arr[] = "abcdefg";
//    size_t ret = my_strlen(arr);
//    printf("%d\n", ret);
//    return 0;
//}

//int main()
//{
//    int n = 0x11223344;
//    char* pc = (char*)&n;
//    int* pi = &n;
//    *pc = 0;
//    *pi = 0;
//    return 0;
//}

//int main()
//{
//	int n = 10;
//	char* pc = (char*)&n;
//	int* pi = &n;
//
//	printf("%p\n", &n);
//	printf("%p\n", pc);
//	printf("%p\n", pc + 1);
//	printf("%p\n", pi);
//	printf("%p\n", pi + 1);
//	return 0;
//}